<!doctype html>
<html>
	<head>
		<title>gwt-log demo</title>

	    <!-- Default to 'DEBUG' log level -->
	    <meta name="gwt:property" content="log_level=TRACE">
	
	    <script language='javascript' src='demo/demo.nocache.js'></script>

	    <link type="text/css" rel="stylesheet" href="LogDemo.css">
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-587086-9']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
	</head>
	<body>
    <noscript><b style="color: red; border: 1px solid red; padding: 4px;">Please enable JavaScript in order to view this page</b></noscript>
		<iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>

        <div style="font-weight: bold; font-size: 1.2em;">
          <a href="http://code.google.com/p/gwt-log/">gwt-log</a>
           - Runtime logging for your Google Web Toolkit projects.
        </div>
        <div style="font-style: italic; margin-bottom: 1em;">
          by Fred Sauer
        </div>
        <div style="margin-bottom: 2em;">
          <b>Key Features:</b>
          <ul style="margin: 0em 0em 0em 1.8em;">
            <li>
              Client logging code is compiled out and introduces zero-overhead<sup>*</sup> due to
              GWT compiler dead code elimination when <code>log_level=OFF</code>
            </li>
            <li>
              Serializable classes (domain objects, DTOs, <a href="http://en.wikipedia.org/wiki/POJO">POJO</a>s, etc.)
              can utilize the same logging code on client and server via inclusion of a single, common,
              <code>gwt-log</code> jar on both tiers
            </li>
            <li>
              Remote logging option, which sends copies of all client log messages to the server
            <li>
              Optional deobfuscated JavaScript stack traces on the client, providing you with pretty
              Java-esk stack traces in Production Mode, even when your application has been compiled
              with <code>-style OBF[USCATED]</code>
            </li>
            <li>
              Server side logging for mobile devices such as Android devices and the iPhone
            </li>
            <li>
              Server side logging automatically detects Apache <a href="http://logging.apache.org/log4j/">log4j</a>,
              falling back to <a href="http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html">JDK&nbsp;1.4 logging</a>
            </li>
            <li>
              Seven out-of-the-box log levels (<code>TRACE</code>, <code>DEBUG</code>, <code>INFO</code>, 
              <code>WARN</code>, <code>ERROR</code>, <code>FATAL</code>, <code>OFF</code>)
            </li>
            <li>
              Log level can be controlled via <code>?log_level=...</code> URL parameter,
              GWT <code>&lt;meta name="gwt:property" content="log_level=..."&gt;</code> tag in your
              HTML, or in your <code>*.gwt.xml</code> module file
            </li>
            <li>
              Wide variety of context sensitive log destinations: draggable popup DIV, Firebug /
              <code>console.log()</code>, <code>GWT.log()</code>,
              <code>System.err()</code>/<code>System.out()</code>, remote (server) logging
            </li>
            <li>
              Ability to independently control compile time and runtime log levels
            </li>
            <li>
              Out-of-the-box <code>UncaughtExceptionHandler</code> via <code>Log.setUncaughtExceptionHandler()</code>
            </li>
            <li>
              Catch and log non-GWT JavaScript exceptions on the page (in supported browsers)
            </li>
            <li>
              Works seamlessly with <a href="http://code.google.com/appengine">Google App Engine</a> for both client and server side logging
            </li>
            <li>
              Logging categories
            </li>
          </ul>
          <br>
          <sup>*&nbsp;Unless your logging parameters are determined by the GWT compiler to have <em>side effects</em></sup>
        </div>
      
        <b>Interactive Demo:</b><br>
        <br>
        <div id="demo-main-panel" style="margin-left: 0.5em;">
          <div style="color: gray; white-space: nowrap">
            <img src="images/preview61_cycle_eight_16-black-on-white.gif" style="vertical-align: middle;">
            Loading demo. Please wait...
          </div>
        </div>

	</body>
</html>
